import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from "rxjs";

@Injectable({
  providedIn: 'root'
})
export class GameOperateManageService {

  serivceUrls = {
    uploadFileUrl: '/common/upload/file', // 文件上传

    queryGameBannerListUrl: '/gameBanner/list', // 查询游戏banner列表
    updateGameBannerUrl: '/gameBanner/saveOrUpdate', // 新增 | 编辑 游戏banner
    moveGameBannerUrl: '/gameBanner/move', // 游戏banner 移动
    deleteGameBannerUrl: '/gameBanner/delete', // 游戏banner 删除

    queryGameHotListUrl: '/gameHotWord/list', // 查询热搜列表
    updateGameHotUrl: '/gameHotWord/saveOrUpdate', // 热搜新增 | 编辑
    moveGameHotUrl: '/gameHotWord/move', // 热搜上下移动

    queryActivityListUrl: '/gameActivity/list', // 查询活动公告
    queryActivityDetailsUrl: '/gameActivity/details', // 活动公告详情
    updateActivityNoticeUrl: '/gameActivity/saveOrUpdate', // 新增 | 编辑 活动公告

    queryGameWelfareListUrl: '/gameWelfare/list', // 查询游戏福利List
    updateGameWelfareUrl: '/gameWelfare/saveOrUpdate', // 新增 | 编辑 游戏福利
    moveGameWelfareUrl: '/gameWelfare/move', // 游戏福利 上下移
    queryChangeCodeListUrl: '/gameCode/list', // 查看兑换码List
    deleteChangeCodeUrl: '/gameCode/update', // 删除兑换码
  };

  constructor(public httpClient: HttpClient) { }

  /**
   * 文件上传
   * @param fileToUpload 
   * @returns 
   */
  uploadFileData(fileToUpload: File) {
    const formData: FormData = new FormData();
    formData.append('file', fileToUpload);
    formData.append('name', "notice-manage");
    return this.httpClient.post(this.serivceUrls.uploadFileUrl, formData).toPromise();
  }

  /**
   * ----------------------------------------------------------------
   * 游戏运营 热搜
   * ----------------------------------------------------------------
   */
  getGameBannerListData(params: any) {
    return this.httpClient.post(this.serivceUrls.queryGameBannerListUrl, params).toPromise();
  }
  
  // 新增 | 编辑 banner
  updateGameBannerData(params: any) {
    return this.httpClient.post(this.serivceUrls.updateGameBannerUrl, params).toPromise();
  }

  // 游戏 banner 移动
  moveGameBannerData(params: any) {
    return this.httpClient.post(this.serivceUrls.moveGameBannerUrl, params).toPromise();
  }

  // 游戏 banner 删除
  deleteGameBannerData(id: number) {
    const url = `${this.serivceUrls.deleteGameBannerUrl}/${id}`;
    return this.httpClient.get(url).toPromise();
  }

  /**
   * ----------------------------------------------------------------
   * 游戏运营 热搜
   * ----------------------------------------------------------------
   */
  // 查询游戏热搜
  getGameHotListData(params: any) {
    return this.httpClient.post(this.serivceUrls.queryGameHotListUrl, params).toPromise();
  }

  // 新增 | 编辑 热搜
  updateGameHotData(params: any) {
    return this.httpClient.post(this.serivceUrls.updateGameHotUrl, params).toPromise();
  }

  // 分类上下移
  moveGameHotData(params: any) {
    return this.httpClient.post(this.serivceUrls.moveGameHotUrl, params).toPromise();
  }

  /**
   * ----------------------------------------------------------------
   * 游戏运营 活动公告
   * ----------------------------------------------------------------
   */

  // 查询活动公告List
  getActivityListData(params: any) {
    return this.httpClient.post(this.serivceUrls.queryActivityListUrl, params).toPromise();
  }

  // 查询活动公告详情 Details
  getActivityDetailsData(params: any) {
    return this.httpClient.post(this.serivceUrls.queryActivityDetailsUrl, params).toPromise();
  }

  // 活动公告 新增 | 编辑
  updateActivityNoticeData(params: any) {
    return this.httpClient.post(this.serivceUrls.updateActivityNoticeUrl, params).toPromise();
  }

  /**
   * ----------------------------------------------------------------
   * 游戏运营 游戏福利
   * ----------------------------------------------------------------
   */

  // 查询游戏福利List
  getGameWelfareListData(params: any) {
    return this.httpClient.post(this.serivceUrls.queryGameWelfareListUrl, params).toPromise();
  }

  // 游戏福利 新增 | 编辑
  updateGameWelfareData(params: any) {
    return this.httpClient.post(this.serivceUrls.updateGameWelfareUrl, params).toPromise();
  }

  // 游戏福利 上下 移
  moveGameWelfareData(params: any) {
    return this.httpClient.post(this.serivceUrls.moveGameWelfareUrl, params).toPromise();
  }

  // 游戏福利 查看兑换码
  getChangeCodeListData(params: any) {
    return this.httpClient.post(this.serivceUrls.queryChangeCodeListUrl, params).toPromise();
  }

  // 游戏福利 删除兑换码
  deleteChangeCodeData(params: any) {
    return this.httpClient.post(this.serivceUrls.deleteChangeCodeUrl, params).toPromise();
  }
}

